#!/bin/bash
#1 获取输入参数个数，如果没有参数，直接退出
FILE_COUNT=$#
if((FILE_COUNT==0)); then
    echo ">>> 错误：未传参数！传的命令需要引号：\"command;command\""
    echo "  用法：user_group.sh user group"
    echo "  用法：user_group.sh user group"
    exit;
fi


USER=$1
GROUP=$2
#新建用户
adduser $USER
groupadd $GROUP
useradd -g $USER $GROUP

#修改密码
# 嵌入执行
sudo /usr/bin/expect <<-EOF
spawn passwd $USER
expect {
    "*：" {send "$USER\r";exp_continue}
    "*：" {send "$USER\r"}
}
expect eof
EOF

#查看系统中所有用户
#2.awk下面的变量NF和$NF有什么区别?{print NF} 也有{print $NF}
#前者是输出了域个数，后者是输出最后一个字段的内容
#FS表示操作的时候以什么为分割符
echo "======== 系统中所有组 ==========="
cut -d : -f 1 /etc/group |awk '{for(i=0;++i<=NF;)a[i]=a[i]?a[i] FS $i:$i}END{for(i=0;i++<NF;)print a[i]}' 
echo "======== 系统中所有用户 ========="
cut -d : -f 1 /etc/passwd |awk '{for(i=0;++i<=NF;)a[i]=a[i]?a[i] FS $i:$i}END{for(i=0;i++<NF;)print a[i]}' 
echo "======删除组和参考脚本注释======="
#永久性删除用户账号

#userdel testuser 
#groupdel testgroup
#（强制删除该用户的主目录和主目录下的所有文件和子目录）
#usermod –G testgroup testuser  

sudo cat >>/etc/sudoers<<EOF
#===== 添加普通用户权限 =====
$USER ALL=(ALL) ALL
EOF







